CleanJava: Language Design for the Simplification of Object- Based Reasoning
نویسندگان
چکیده
References are an integral part of popular object-oriented languages. They permit efficient data movement and parameter passing, and implement object identity. But their current use complicates reasoning by routinely introducing object aliasing. As a result, a significant body of research has focused on alias control techniques for object-oriented languages. This paper aims to simplify reasoning about objects by allowing programmers to ignore references in reasoning without losing the performance benefits they provide. It introduces a language design principle, cleanliness, that promotes the view of all variables as independent object values regardless of their implementations. To illustrate how this principle can be realized efficiently in practice, it describes the design of CleanJava. CleanJava is the result of re-engineering Java, focusing on four main areas of language design that involve references: object initialization, data movement, parameter passing, and the implementation of typically linked data structures.
منابع مشابه
Constructing Verifiably Correct Java Programs Using OCL and CleanJava
A recent trend in software development is building a precise model that can be used as a basis for the software development. Such a model may enable an automatic generation of working code, and more importantly it provides a foundation for correctness reasoning of code. In this paper we propose a practical approach for constructing a verifiably correct program from such a model. The key idea of...
متن کاملEnhancing the Expressiveness of the CleanJava Language
The CleanJava language is a formal annotation language for Java to support Cleanroom-style functional program verification that views a program as a mathematical function from one program state to another. The CleanJava notation is based on the Java expression syntax with a few extensions, and thus its vocabulary is somewhat limited to that of Java. This often makes it difficult to specify the ...
متن کاملThe CleanJava Language for Functional Program Verification
Unlike Hoare-style program verification, functional program verification supports forward reasoning by viewing a program as a mathematical function from one program state to another and proving its correctness by essentially comparing two mathematical functions, the function computed by the program and its specification. Since it requires a minimal mathematical background and reflects the way t...
متن کاملA Preliminary Investigation of Design Simplification by Analogy
This paper describes research on the simplification of designs using analogical reasoning. We present a definition of simplification and some examples, and then describe a prototype system that has been built to support our preliminary investigations of this problem. 1.0 Introduction This research is concerned with the representations and reasoning required for Design Simplification. A design c...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003